home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-07-03 | 14.1 KB | 388 lines | [TEXT/R*ch] |
- Moscow ML version 1.31 (15 October 1995)
- Enter `quit();' to quit.
- [opening file "test.sml"]
- [opening file "test1.sml"]
- > val it = 1 : int
- > val it = 5 : int
- > val it = 100 : int
- > val fact = fn : int -> int
- > val it = 24 : int
- > val append2 = fn : 'a list * 'a list -> 'a list
- > val it = [1, 2, 3, 4, 5, 6] : int list
- > val append = fn : 'a list -> ('a list -> 'a list)
- > val it = [1, 2, 3, 4, 5, 6] : int list
- > val reverse = fn : 'a list -> 'a list
- > val it = [4, 3, 2, 1] : int list
- > val it = [false, true] : bool list
- > val @ = fn : 'a list * 'a list -> 'a list
- > infixr 5 @
- > val it = [1, 2, 3, 4, 5, 6] : int list
- [closing file "test1.sml"]
- > val it = () : unit
- [opening file "test2.sml"]
- > val fact = fn : int -> int
- > val it = 24 : int
- > val append2 = fn : 'a list * 'a list -> 'a list
- > val it = [1, 2, 3, 4, 5, 6] : int list
- > val append = fn : 'a list -> 'a list -> 'a list
- > val it = [1, 2, 3, 4, 5, 6] : int list
- > val reverse = fn : 'a list -> 'a list
- > val it = [4, 3, 2, 1] : int list
- > val it = [false, true] : bool list
- > val @ = fn : 'a list * 'a list -> 'a list
- > infixr 5 @
- > val it = [1, 2, 3, 4, 5, 6] : int list
- [closing file "test2.sml"]
- > val it = () : unit
- [opening file "test3.sml"]
- > datatype 'a Tree
- con Lf = Lf : 'a Tree
- con Br = fn : 'a * 'a Tree * 'a Tree -> 'a Tree
- > val t1 = Br(2, Br(1, Lf, Lf), Br(3, Lf, Lf)) : int Tree
- > val foldTree = fn : ('a -> ('b -> ('b -> 'b))) -> 'b -> 'a Tree -> 'b
- > val revBranch = fn : 'a -> 'a Tree -> 'a Tree -> 'a Tree
- > val reflect = fn : 'a Tree -> 'a Tree
- > val refl_t1 = Br(2, Br(3, Lf, Lf), Br(1, Lf, Lf)) : int Tree
- [closing file "test3.sml"]
- > val it = () : unit
- [opening file "test4.sml"]
- > val map = fn : ('a -> 'b) -> 'a list -> 'b list
- > val it = [2, 3, 4] : int list
- > infix 5 ++
- > val ++ = fn : 'a list * 'a list -> 'a list
- > val it = [1, 2, 3, 4, 5, 6] : int list
- > val reverse = fn : 'a list -> 'a list
- > val it = [4, 3, 2, 1] : int list
- > val it = [false, true] : bool list
- > infix 3 o
- > val o = fn : ('a -> 'b) * ('c -> 'a) -> 'c -> 'b
- > val I = fn : 'a list -> 'a list
- > val it = [1, 2, 3] : int list
- > val zl = [(1, true), (2, false), (3, true)] : (int * bool) list
- > val fst = fn : 'a * 'b -> 'a
- > val snd = fn : 'a * 'b -> 'b
- > val it = [1, 2, 3] : int list
- > val split = fn : ('a * 'b) list -> 'a list * 'b list
- > val it = ([1, 2, 3], [true, false, true]) : int list * bool list
- > val member = fn : ''a -> ''a list -> bool
- > val it = true : bool
- > val it = false : bool
- [closing file "test4.sml"]
- > val it = () : unit
- [opening file "test5.sml"]
- > val it = [7] : int list
- > val Id = fn : '_a -> '_a
- > val Id' = fn : '_a -> '_a
- > val reverse = fn : '_a list -> '_a list
- > val it = [3, 2, 1] : int list
- > val it = [false, true] : bool list
- > val f = fn : int ref -> int ref * int
- > val it = (ref 666, 99) : int ref * int
- > val it = 8 : int
- [closing file "test5.sml"]
- > val it = () : unit
- [opening file "test6.sml"]
- > exn E = E : exn
- > val f = fn : unit -> 'a
- > val it = "OK" : string
- > val elist = [E, Size] : exn list
- > exn E' = E' : exn
- > val it = "OK" : string
- > val it = "OK" : string
- > exn G = fn : int -> exn
- > val it = "OK" : string
- [closing file "test6.sml"]
- > val it = () : unit
- [opening file "test7.sml"]
- > abstype 'a Stack
- type 'a StackTop = 'a * 'a Stack
- exn EmptyStack = EmptyStack : exn
- val empty = <Stack> : 'a Stack
- val top = fn : 'a Stack -> 'a
- val push = fn : 'a -> 'a Stack -> 'a Stack
- val pop = fn : 'a Stack -> 'a Stack
- > val st1 = <Stack> : int Stack
- > val top1 = 3 : int
- > val rest1 = <Stack> : int Stack
- [closing file "test7.sml"]
- > val it = () : unit
- [opening file "test8.sml"]
- > datatype 'a arex
- type 'a binary = 'a arex * 'a arex
- type 'a unary = 'a arex
- con ADD = fn : 'a arex * 'a arex -> 'a arex
- con SUB = fn : 'a arex * 'a arex -> 'a arex
- con MINUS = fn : 'a arex -> 'a arex
- con TIP = fn : 'a -> 'a arex
- > val a1 = MINUS(ADD(TIP 1, SUB(TIP 2, TIP 5))) : int arex
- [closing file "test8.sml"]
- > val it = () : unit
- [opening file "test9.sml"]
- > type person = {age : int, name : string}
- > val p1 = {age = 99, name = "Peter"} : {age : int, name : string}
- > val name1 = "Peter" : string
- val age1 = 99 : int
- > val nameOfPerson = fn : {age : 'a, name : 'b} -> 'b
- > val name1 = "Peter" : string
- > val name = "Peter" : string
- val age = 99 : int
- > val name = "Peter" : string
- > val name = "Peter" : string
- val name1 = "Peter" : string
- > val f = fn : {age : int, name : string} -> string
- > val name1 = "Peter" : string
- > val age1 = 99 : int
- > val f = fn : {lab : int} -> int
- > val it =
- (fn, true)
- : ({l1 : ''a, l2 : int} -> {l1 : ''a, l3 : string} -> bool) * bool
- > val it =
- (fn, fn, fn)
- : ({l1 : 'a, l2 : ''b} -> 'a) * ({l1 : 'c, l2 : 'd} -> 'c * 'd) *
- ({l1 : ''e, l2 : ''f} -> bool * ''e * (''e * ''f))
- [closing file "test9.sml"]
- > val it = () : unit
- [opening file "testa.sml"]
- > val even = fn : int -> bool
- val odd = fn : int -> bool
- > val it = true : bool
- > val it = false : bool
- > datatype 'a X
- con X = fn : string -> 'a X
- > val stripX = fn : 'a X -> string
- > val it = "OK" : string
- > val stripX666 = fn : 'a X -> 'a X
- > val it = X "000" : 'a X
- > val it = X "OK" : 'a X
- > datatype XXX
- con A = fn : int * int -> XXX
- con B = fn : int * int -> XXX
- > val a12 = A(1, 2) : XXX
- val b12 = B(1, 2) : XXX
- > val strip = fn : XXX -> int * int
- > val it = false : bool
- > val it = true : bool
- [closing file "testa.sml"]
- > val it = () : unit
- [opening file "testb.sml"]
- File "testb.sml", line 3, characters 9-12:
- ! (let val nil = [1,2] and _ = raise Io "WRONG" in "DEAD" end)
- ! ^^^
- ! Warning: pattern matching is not exhaustive
-
- > val it = "OK" : string
- File "testb.sml", line 5, characters 2-17:
- ! ((fn 0 => "WRONG") 1)
- ! ^^^^^^^^^^^^^^^
- ! Warning: pattern matching is not exhaustive
-
- > val it = "OK" : string
- > val it = ["OK"] : string list
- > val it = ("OK", "OK") : string * string
- > val it = {aaa = "OK", bbb = "OK"} : {aaa : string, bbb : string}
- > val pr = fn : string -> string
- > val x7 =
- fn
- : 'a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g ->
- 'a * 'b * 'c * 'd * 'e * 'f * 'g
- 246> val it =
- ("1", "2", "3", "4", "5", "6", "7")
- : string * string * string * string * string * string * string
- > datatype ('a, 'b) AB
- con NILab = NILab : ('a, 'b) AB
- con CONSab = fn : {a : 'a, b : 'b} -> ('a, 'b) AB
- ab> val it = CONSab{a = "a", b = "b"} : (string, string) AB
- ba> val it = CONSab{a = "a", b = "b"} : (string, string) AB
- > val f = fn : 'a -> 'a
- > val f = fn : int -> int
- > val it = "OK" : string
- [closing file "testb.sml"]
- > val it = () : unit
- [opening file "testc.sml"]
- > datatype xxx
- con P = P : xxx
- con Q = fn : {key : (xxx ref * xxx ref) list} -> xxx
- > val z = ref P : xxx ref
- > val it = () : unit
- > val it =
- ref(Q{key =
- [(ref(Q{key =
- [(ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]})),
- (ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}))]}),
- ref(Q{key =
- [(ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]})),
- (ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}))]})),
- (ref(Q{key =
- [(ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]})),
- (ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}))]}),
- ref(Q{key =
- [(ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]})),
- (ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}),
- ref(Q{key =
- [(ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]})),
- (ref(Q{key = [(#, #), (#, #)]}),
- ref(Q{key = [(#, #), (#, #)]}))]}))]}))]})
- : xxx ref
- [closing file "testc.sml"]
- > val it = () : unit
- [opening file "testd.sml"]
- > val maxint = 1073741823 : int
- > val minint = ~1073741824 : int
- > infix 0 seq
- val seq = fn : 'a * 'b -> 'b
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val sum = fn : int * int -> int
- > val diff = fn : int * int -> int
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val prod = fn : int * int -> int
- > val it = "OK" : string
- > val checkDivMod = fn : int -> int -> string
- 23 10 > val it = "OK" : string
- ~23 10 > val it = "OK" : string
- 23 ~10 > val it = "OK" : string
- ~23 ~10 > val it = "OK" : string
- 100 10 > val it = "OK" : string
- ~100 10 > val it = "OK" : string
- 100 ~10 > val it = "OK" : string
- ~100 ~10 > val it = "OK" : string
- 100 1 > val it = "OK" : string
- 100 ~1 > val it = "OK" : string
- 0 1 > val it = "OK" : string
- 0 ~1 > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val maxri = 1073741823.0 : real
- > val minri = ~1073741824.0 : real
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- [closing file "testd.sml"]
- > val it = () : unit
- [opening file "teste.sml"]
- > val MAXDOUBLE = 8.98846567431E307 : real
- > val MINDOUBLE = 4.94065645841E~324 : real
- val pi = 3.14159265359 : real
- > val eps = 1E~15 : real
- > infix 0 seq
- val seq = fn : 'a * 'b -> 'b
- > val check1 = fn : ('a -> real) * 'a * real -> string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val check2 = fn : ('a * 'b -> real) * 'a * 'b * real -> string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val maxexp = 709.089565712 : real
- > val it = "OK" : string
- > val it = "OK" : string
- > val it = "OK" : string
- > val f = fn : real -> real
- [closing file "teste.sml"]
- > val it = () : unit
-